#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int un_g_val;
int g_val = 100;

int main(int argc, char *argv[], char *env[])
{
  printf("test:%p\n", main);
  printf("uninit:%p\n", &un_g_val);

  printf("init:%p\n", &g_val);

  char *p1 = (char *)malloc(16);
  char *p2 = (char *)malloc(16);
  char *p3 = (char *)malloc(16);
  char *p4 = (char *)malloc(16);

  printf("heap:%p\n", p1);
  printf("heap:%p\n", p2);
  printf("heap:%p\n", p3);
  printf("heap:%p\n", p4);

  printf("stack:%p\n", &p1);
  printf("stack:%p\n", &p2);
  printf("stack:%p\n", &p3);
  printf("stack:%p\n", &p4);

  // printf("begin--------------------------------\n");
   if(argc != 2)
   {
  
       printf("至少有一个选项\n");
       return 1;
   }

   if(strcmp(argv[1],"-a")==0)
   {
       printf("此为功能一\n");
   }
   if(strcmp(argv[1],"-b")==0)
   {
       printf("此为功能二\n");
   }

  // int i = 0;
  // while(i < argc)
  // {
  //     printf("argv[%d]:%s\n",argc,argv[i]);
  //     i++;
  // }
  // printf("%s\n",getenv("lesson13"));
  // int i = 0;
  // while(env[i])
  // {
  //     printf("env[%d]:%s\n",i,env[i]);
  //     i++;
  // }
  // extern char** environ;
  // int i = 0;
  // while(environ[i])
  // {

  //    printf("env[%d]:%s\n",i,environ[i]);
  //    i++;
  // }
  // printf("end----------------------------------\n");

  // while(1)
  // {
  //     printf("pid :%d\n",getpid());
  // }
  //  int pid = fork();
  //  if(pid == 0)
  //  {
  //      //child
  //      while(1)
  //      {
  //          printf("i am a child\n");
  //          sleep(1);
  //      }
  //  }
  //  else
  //  {
  //      int cur = 5;
  //      while(cur--)
  //      {
  //          sleep(1);
  //          printf("parent:%d\n",cur);
  //      }
  //  }

  return 0;
}
